package com.bidevalution.business.service;

import com.bidevalution.dao.entity.BeSectionEnterprise;
import com.qtp.core.model.Response;
import com.sun.org.apache.xpath.internal.operations.Bool;

import java.util.List;
import java.util.Map;

/**
 * Created by glodon on 2019-08-30.
 */
public interface BeSectionEnterpriseService {
    /**
     * 根据标段获取投标单位列表
     * @param sectionId
     * @return
     * @throws Exception
     */
    List<BeSectionEnterprise> getBeSectionEnterpriseList(String sectionId) throws Exception;

    /**
     * 生成暗标号
     * @param sectionId
     * @return
     * @throws Exception
     */
    String generateHideNumber(String sectionId) throws Exception;

    /**
     * 查询需要下载并解析的投标单位信息
     * @return
     * @throws Exception
     */
    List<BeSectionEnterprise> getImportEnterpriseList() throws Exception;

    /**
     * 根据标段id获取投标单位列表
     *
     * @param sectionId
     * @return
     * @throws Exception
     */
    List<BeSectionEnterprise> queryEnterBySectionId(String sectionId) throws Exception;

    /**
     * 获取投标文件中的单位信息
     * @param sectionId
     * @return
     * @throws Exception
     */
    List<BeSectionEnterprise> getEnterpriseNames(String sectionId) throws Exception;


    /**
     * 根据企业的平台id，获取企业信息
     * @param ptEntGuid 企业的平台id
     * @return 返回企业信息
     */
    BeSectionEnterprise getEnterpriseByPtId(String ptEntGuid);
	/**
     * 新增入围单位
     * @param item 对象
     * @return 是否成功
     */
    Response addSectionEnterprise(BeSectionEnterprise item);

    /**
     * 根据企业id获删除投标单位
     * @param seqId 企业id
     * @return 是否成功
     */
    Response delSectionEnterprise(String seqId);

    /**
     * 修改入围企业的名称
     * @param sectionId 标段id
     * @param projectId 项目id
     * @param seqId 企业id
     * @param name 名称
     * @return 返回修改结果
     */
    Response updateEnterpriseName(String sectionId, String projectId, String seqId, String name);

    /**
     * 根据标段id获取投标报价不为空的投标单位列表
     *
     * @param sectionId
     * @return
     * @throws Exception
     */
    List<BeSectionEnterprise> queryEnterpriseByIdAndPrice(String sectionId) throws Exception;

    /**
     * 根据标段id清空排名和分数
     *
     * @param sectionId
     * @return
     */
    int updateScoreBySectionId(String sectionId) throws Exception;

    /**
     * 查询当前环节投标单位保证金信息
     *
     * @param sectionStepId
     * @param expertId
     * @param flag
     * @return
     * @throws Exception
     */
    List<Map<String, Object>> queryDepositInfo(String sectionStepId, String expertId, String flag) throws Exception;

    /**
     * 更新投标单位保证金缴纳方式
     *
     * @param enterpriseId
     * @param depositType
     * @return
     * @throws Exception
     */
    void updateDepositTypeById(String enterpriseId, String depositType) throws Exception;

    /**
     * 根据传入条件查询投标单位信息表
     *
     * @param beSectionEnterprise
     * @return
     * @throws Exception
     */
    List<BeSectionEnterprise> queryByCondition(BeSectionEnterprise beSectionEnterprise) throws Exception;
}
